package org.sun.consumer.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

//熔断和降级都在  ProduceConfiguration 中处理
@FeignClient(value = "sunshine",fallback = ProduceFallback.class,configuration = ProduceConfiguration.class)
public interface ProducerInterface {
    /**
     * 客户端一定要显示的指明 参数名称
     * @param name  GET:http://sunshine/echo/{name}    openfeign 的拦截是在调用节点拦截的。也就是是在这里拦截的。这里也好理解。他是把这个方法当作了资源。
     * @return
     */
    @RequestMapping(method = RequestMethod.GET, value = "/echo/{name}")
    String echo(@PathVariable("name") String name);

    /**
     * sentinel 资源名称   GET:http://sunshine/echo2
     * @param name
     * @return
     */
    @RequestMapping(method = RequestMethod.GET, value = "/echo2")
    String echo2(@RequestParam("name") String name);
}
